#include <stdio.h>
#include <ctype.h>

int main(void)
{
    char ch = getchar();

    if (isalpha(ch))
        printf("it is an alpha character: %c\n", toupper(ch));
    else
        printf("it is not an alpha character.\n");

    return 0;
}

/*
字符测试函数
这些函数用来判断字符是否属于某种类型。

isalnum()：是否为字母数字
isalpha()：是否为字母
isdigit()：是否为数字
isxdigit()：是否为十六进制数字符
islower()：是否为小写字母
isupper()：是否为大写字母
isblank()：是否为标准的空白字符（包含空格、水平制表符或换行符）
isspace()：是否为空白字符（空格、换行符、换页符、回车符、垂直制表符、水平制表符等）
iscntrl()：是否为控制字符，比如 Ctrl + B
isprint()：是否为可打印字符
isgraph()：是否为空格以外的任意可打印字符
ispunct()：是否为标点符号（除了空格、字母、数字以外的可打印字符）
它们接受一个待测试的字符作为参数。注意，参数类型为int，而不是char，因为它们允许 EOF 作为参数。

如果参数字符属于指定类型，就返回一个非零整数（通常是1，表示为真），否则返回0（表示为伪）。

下面是一个例子，用户输入一个字符，程序判断是否为英文字母。

#include <stdio.h>
#include <ctype.h>

int main(void) {
  char ch = getchar();

  if (isalpha(ch))
    printf("it is an alpha character.\n");
  else
    printf("it is not an alpha character.\n");

  return 0;
}
字符映射函数
这一类函数返回字符的某种对应形式，主要有两个函数。

tolower()：如果参数是大写字符，返回小写字符，否则返回原始参数。
toupper()：如果参数是小写字符，返回大写字符，否则返回原始参数。
// 将字符转为大写
ch = toupper(ch);
注意，这两个函数不会改变原始字符。
*/